package paint2.ui;

import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JMenuItem;

public class Elemento extends ElementoVisible{
    private final String nombre;
    private final String nombreDelIcono;
    private ActionListener actionListener;

    public Elemento (String nombre, String nombreDelIcono) {
        this.nombre = nombre;
        this.nombreDelIcono = nombreDelIcono;
        this.actionListener = null;
    }

    public void agregarActionListener(ActionListener listener) {
        this.actionListener = listener;
    }

    public JMenuItem construirParaMenu() {
        JMenuItem elementoDeMenu = new JMenuItem(this.nombre,
                new ImageIcon(getClass().getResource("/iconos/" + nombreDelIcono + ".png")));
        siTieneActionListenerLoAgrega(elementoDeMenu);
        
        return elementoDeMenu;
    }

    private void siTieneActionListenerLoAgrega(JMenuItem elementoDeMenu) {
        if (existeActionListener()) {
            elementoDeMenu.addActionListener(actionListener);
        }
    }

    private boolean existeActionListener() {
        return actionListener != null;
    }

    public JButton construirParaHerramienta() {
        JButton boton = new JButton(new ImageIcon(getClass().getResource("/iconos/" + nombreDelIcono + ".png")));
        siTieneActionListenerLoAgrega(boton);

        return boton;
    }

    private void siTieneActionListenerLoAgrega(JButton boton) {
        if (existeActionListener()) {
            boton.addActionListener(actionListener);
        }
    }

}
